<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    /* 
    async

    async函数返回值：
    返回的是promise实列 默认为pending状态
    当async函数全部执行完成，返回成功状态的promise实列,值为async的函数返回值
    当async函数内部有错误，则直接停止代码的运行 返回失败状态的promise实列，值为错误信息
    当async内部return是promise实列的时候，async函数的返回值和promise实列保持一致
    当await等待的promise实列是失败状态，则async函数的返回值和这个失败的promise实列保持一致并停止函数内代码运行

    

    await返回值：
    就是等待的promise实列成功状态的值
    
    */

    async function getData() {



      const a = await new Promise((resovle, reject) => {

        // throw new Error('错误')
        try {
          setTimeout(() => {

            resovle(1)
          })
        } catch (e) {
          reject(e.message)
        }

      });
      console.log('await', a);

      return Promise.resolve(1)
      
    }
    const g = getData()

    console.log(g);
  </script>
</body>

</html>